package probandoTitiritero;


import controlador.ControladorDisparo;
import juego.Bombardero;
import juego.Caza;
import juego.Cohete;
import juego.Coordenada;
import juego.Laser;
import juego.Proyectil;
import juego.Torpedo;
import juego.TorpedoRastreador;
import juego.Tripulado;
import vista.VistaFondo1;
import vista.VistaLaser;
import vista.VistaTorpedo;
import vista.VistaTorpedoRastreador;
import vista.VistaTripulado;
import vista.VistaCohete;
import vista.VistaCaza;
import vista.VistaBombardero;
import ar.uba.fi.algo3.titiritero.ControladorJuego;
import ar.uba.fi.algo3.titiritero.MouseClickObservador;

public class Programa4 {
	
	public static void main(String[] args) {

    	/*
         * Primero instancio mi modelo: un Tripulado en un fondo
         */
              
        Fondo unFondo = new Fondo(200,200);

            /*
             * Luego instancio los objetos del framework: una ventana y el controlador
             */             
        
            Tripulado algo42 = new Tripulado();
            
            ControladorJuego controlador = new ControladorJuego(false);
            
            VentanaPrincipal ventana = new VentanaPrincipal(controlador);
            controlador.setSuperficieDeDibujo(ventana.getSuperficieDeDibujo());

            ventana.setVisible(true);
            controlador.agregarKeyPressObservador(new EscuchadorDeKeyPress(algo42));
           
            VistaFondo1 vistaFondo = new VistaFondo1();
            vistaFondo.setPosicionable(unFondo);
            
            Coordenada ubicacion = new Coordenada(190,340);
            Laser unLaser = new Laser(ubicacion);
            unLaser.hacerLeal();
            Coordenada ubicacionTorpedo = new Coordenada(313,30);
            Torpedo unTorpedo = new Torpedo(ubicacionTorpedo);
            Coordenada ubicacionCohete = new Coordenada(120,30);
            Cohete unCohete = new Cohete(ubicacionCohete);
            Coordenada ubicacionTorpedoRastreador = new Coordenada(250,40);
            TorpedoRastreador unTorpedoRastreador = new TorpedoRastreador(ubicacionTorpedoRastreador);
            
            Bombardero unBombardero = new Bombardero(100,30);
            Bombardero unBombardero2 = new Bombardero(230,20);
            Caza unCaza = new Caza(300,30);

            VistaLaser vistaLaser = new VistaLaser();
            vistaLaser.setPosicionable(unLaser);
            VistaTorpedoRastreador vistaTorpedoRastreador = new VistaTorpedoRastreador();
            vistaTorpedoRastreador.setPosicionable(unTorpedoRastreador);
            VistaTorpedo vistaTorpedo = new VistaTorpedo();
            vistaTorpedo.setPosicionable(unTorpedo);
            VistaTripulado vistaTripulado = new VistaTripulado();
            vistaTripulado.setPosicionable(algo42);
            VistaCohete vistaCohete = new VistaCohete();
            vistaCohete.setPosicionable(unCohete);
            VistaBombardero vistaBombardero = new VistaBombardero();
            vistaBombardero.setPosicionable(unBombardero);
            VistaBombardero vistaBombardero2 = new VistaBombardero();
            vistaBombardero2.setPosicionable(unBombardero2);
            VistaCaza vistaCaza = new VistaCaza();
            vistaCaza.setPosicionable(unCaza);
            
            
            controlador.agregarObjetoVivo(unLaser);
            controlador.agregarObjetoVivo(unTorpedo);
            controlador.agregarObjetoVivo(unTorpedoRastreador);
            controlador.agregarObjetoVivo(unCohete);
            controlador.agregarObjetoVivo(algo42);
            controlador.agregarObjetoVivo(unBombardero);
            controlador.agregarObjetoVivo(unCaza);
            controlador.agregarObjetoVivo(unBombardero2);
            	
            controlador.agregarDibujable(vistaFondo);
            controlador.agregarDibujable(vistaLaser);
            controlador.agregarDibujable(vistaCohete);
            controlador.agregarDibujable(vistaTripulado);
            controlador.agregarDibujable(vistaBombardero);
            controlador.agregarDibujable(vistaBombardero2);
            controlador.agregarDibujable(vistaCaza);
            controlador.agregarDibujable(vistaTorpedo);
            controlador.agregarDibujable(vistaTorpedoRastreador);
            
            controlador.agregarMouseClickObservador(vistaFondo);
            
            //ControladorDisparo controladorDisparo = new ControladorDisparo(controlador,algo42);
       
            controlador.setIntervaloSimulacion(100);
            controlador.comenzarJuego();

        
    }


}
